package TDALista;

/**
 * Nodo para lista simplemente enlazada, con enlace a siguiente
 * @author Jordan
 *
 * @param <E>
 */
public class NodoS<E> implements Position<E> {
	protected E element;
	protected NodoS<E> next;
		
	/**
	 * constructor por defecto
	 */
	public NodoS(){
		element=null; next=null;
	}
	
	/**
	@param e es el elemento que se asigna al nuevo nodo creado.
	*/ 
	public NodoS(E e){
		element=e; next=null;
	}
	
	/**
	@param e es el elemento que se asigna al nuevo nodo creado.
	@param n es el nodo que se asigna como siguiente del nuevo nodo creado.
	*/ 
	public NodoS(E e, NodoS<E> n){
		element=e; 
		next=n;
	}

	/**
	@return retorna el elemento del nodo que llama al metodo.
	*/
	public E getElement(){
		return element;
	}

	/**
	 *@return retorna el elemento del nodo que llama al metodo.	
	*/	
	public E element(){
		return element;
	}

	/**
	 * obtiene el proximo nodo
	 *@return retorna el elemento siguiente del nodo que llama al metodo.	
	*/
	public NodoS<E> getNext(){
		return next;
	}
	

	/** setea el elemento al nodo
	 *@param e elemento que se desea colocar en el nodo que llama al metodo. 	
	*/
	public void setElement(E e){
		element=e;
	}
	
	/**
	 * coloca el valor nulo en el elemento del nodo que llama al metodo.
	 */
	public void setElementNull(){
		element=null;
	}
	

	/**
	 * setea el proximo nodo
	 *@param n nodo que sera colocado como siguiente del nodo que llama al metodo.	
	*/
	public void setNext(NodoS<E> n){
		next=n;
	}
	
	 
	/**
	 * coloca el valor nulo en el parametro siguiente del nodo que llama al metodo.
	 */
	public void setNextNull(){
		next=null;
	}

}
